やること
ブログの機能が少なすぎるので追加ということでまずユーザーを迎え入れるトップページを作って、それからタグ検索機能 の導入を進めていきたいと思う。正直トップページは普通に書くだけなのでカットで今日のweblogでは主にタグ検索機能を作る に当たって思うところ考えたことの記録を書いていく。
タグとは?
知らない人もいたかもしれないが自分のweblogはタグという仕組みを導入してlogの管理をしている。 タグはタイトルの上の方に小さく書かれている、例えばこのログでは「プログラミング > weblog開発」というふうになっていると思う。
アルゴリズム
さて、これは中々アルゴリズムが難しいのではないだろうか、やっとそれっぽいやつが来たっていう感じがする。 でも特に難しいことはなくてphpでこのディレクトリ(logはすべて同じフォルダにおいてある)のファイル名を全部取得する ことも、その中身を見ることも容易にできるので少しはやりやすいと思う。
最初に考えたアルゴリズムはこれまたかんたんで、検索のためのフォームに内容を記入して送信するとそのデータをURLに保持して tag.phpにやってくる(#1)。 変数名はt(ab)1 ~ 4までサポートすることにする。それぞれのカテゴリにはそれに対応する2桁の数字があり、 その数字をurlで送る。受け取った方はそれをもとにタグハッシュ文字列(#2)を作る。それでファイルを検索して当てはまったものを わかりやす〜い形式で出力してあげる。
#1 URLに?がついているのを見たことがないだろうか。それはurlからphpに値を渡していて、phpでは$_GETという配列に
URL=http://foo.jp/hoge.php?name=trick&visible=trueだったら、$_GET['name']で"trick"が帰ってきたり、$_GET['visible']でtrueが帰ってきたりして中々便利。
#2 自分で決めた名前、要するに各htmlファイルに書かれてあってそのログがどのタグに属するのかを明記している文字列。名前はなんかかっこよかったし、
照合するためにあってなんかハッシュっぽかったから。わかるかな、なんかハッシュっぽいんだ、
コーディング
コーディングは正直地獄だった。検索、タグといった時点で結構難しいんだろうなと構えていたのだが、やっぱり形にするとなると色々障害が生じてきて大変だった。 tag.phpに変数を渡す(変数組のURLをつくる)のは文字列の切ったりつなげたりをこれでもかというほどやった。 また、コードを短くするために色々工夫したためかなりわかりにくくなっている。
TODO
とりあえず、明日は検索結果をきれいに表示してみたいと思う。